<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div id="app">
            <cpn></cpn>
        </div>
        <template id="cpn">
            <div>
                <div>我是cpn组件</div>
                <ccpn></ccpn>
            </div>
        </template>
        <template id="ccpn">
            <div>
                <div>我是子组件</div>
                <button @click="btnClick">按钮</button>
            </div>
        </template>
        <script src="../js/vue.js"></script>
        <script>
            /**
                父访问子中的方法和属性
            */
            const app = new Vue({
                el: '#app',
                data: {
                    message: '你好啊'
                },
                components: {
                    cpn: {
                        template: '#cpn',
                        methods: {
                        },
                        data() {
                            return {
                                name: '我是cpn组件的name'
                            }
                        },
                        components: {
                            ccpn: {
                                template: '#ccpn',
                                methods: {
                                    btnClick() {
                                        // 1. 使用$parent
                                        // 基本不适用这个方式，耦合性太高
                                        console.log(this.$parent.name)

                                        // 2. 访问根组件$root
                                        // 注意访问的是根组件
                                        console.log(this.$root.message)
                                    }
                                },
                            }
                        }
                    }
                }
            })
        </script>
    </body>
</html>